using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using OneSoft.EntityCore;
using OneSoft.DataAccess;
using BySoft.Server.Common.Entity;
using BySoft.Server.Common.Schema;
using BySoft.Server.DataAccess;

namespace BySoft.Server.Business
{
	/// <summary>
	/// MdCustomerdetail
	/// </summary>
	public partial class MdCustomerdetail
	{
		#region GetByID
		/// <summary>
		/// 取得实体
		/// </summary>
		/// <param name="id">实体关键字</param>
		/// <returns>实体实例</returns>
		public static MdCustomerdetailEntity GetMdCustomerdetailByID(Int32? id)
		{
			return MdCustomerdetailDA.GetMdCustomerdetailByID(id);
		}
		#endregion

		#region Insert
		/// <summary>
		/// 插入数据
		/// </summary>
		/// <param name="objMdCustomerdetailEntity">实体实例</param>
		/// <returns>true 插入成功; false 插入失败</returns>
		public static bool InsertMdCustomerdetail(MdCustomerdetailEntity objMdCustomerdetailEntity)
		{
			if (objMdCustomerdetailEntity == null)
			{
				return false;
			}
			try
			{
				
				return OneSoft.DataAccess.DataAccessCommon.Insert(objMdCustomerdetailEntity,true);

				
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region Update
		/// <summary>
		/// 更新数据
		/// </summary>
		/// <param name="objMdCustomerdetailEntity">实体实例</param>
		/// <returns>true 更新成功; false 更新失败</returns>
		public static bool UpdateMdCustomerdetail(MdCustomerdetailEntity objMdCustomerdetailEntity)
		{
			if (objMdCustomerdetailEntity == null)
			{
				return false;
			}
			try
			{
				return OneSoft.DataAccess.DataAccessCommon.Update(objMdCustomerdetailEntity);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region Delete
		/// <summary>
		/// 删除数据
		/// </summary>
		/// <param name="objMdCustomerdetailEntity">实体实例</param>
		/// <returns>true 删除成功; false 删除失败</returns>
		public static bool DeleteMdCustomerdetail(MdCustomerdetailEntity objMdCustomerdetailEntity)
		{
			if (objMdCustomerdetailEntity == null)
			{
				return false;
			}
			try
			{
				return OneSoft.DataAccess.DataAccessCommon.Delete(objMdCustomerdetailEntity);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region GetAll
		/// <summary>
		/// 获取所有数据
		/// </summary>
		/// <returns>返回所有数据</returns>
		public static DataSet GetMdCustomerdetailAll()
		{
			try
			{
				return MdCustomerdetailDA.GetMdCustomerdetailAll();
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region GetDSByCondition
		/// <summary>
		/// 获取符合条件的DS
		/// </summary>
		/// <returns>返回DS</returns>
		public static DataSet GetDSByCondition(string strCondition)
		{
			try
			{
				return MdCustomerdetailDA.GetDSByCondition(strCondition);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region GetByCondition
		/// <summary>
		/// 获取符合条件的数据实体
		/// </summary>
		/// <returns>返回数据实体</returns>
		public static List<MdCustomerdetailEntity> GetByCondition(string strCondition)
		{
			try
			{
				return MdCustomerdetailDA.GetByCondition(strCondition);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

        public static void Save(List<MdCustomerdetailEntity> list)
        {
            bool isResult = true;
            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                try
                {
                    foreach (MdCustomerdetailEntity Detailentity in list)
                    {
                        DataAccessCommon.Insert(Detailentity, true, broker);
                    }
                    broker.Commit();
                }
                catch (Exception ex)
                {
                    isResult = false;
                    broker.Rollback();
                    throw ex;
                }

            }
        }

        public static bool UpdateAndSave(List<MdCustomerdetailEntity> list, string customerid)
        {
            bool isResult = true;
            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                try
                {
                    DataAccessCommon.Delete(customerid, "CustomerID", "MD_CustomerDetail");
                    foreach (MdCustomerdetailEntity Detailentity in list)
                    {
                        DataAccessCommon.Insert(Detailentity, true, broker);
                    }
                    broker.Commit();
                }
                catch (Exception ex)
                {
                    isResult = false;
                    broker.Rollback();
                    throw ex;
                }

            }
            return isResult;
        }

        public static void Del(string strCode)
        {
            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                try
                {
                    broker.BeginTransaction();
                    ClsCommDA.Del("MD_CustomerDetail", "CustomerID", strCode, broker);
                    broker.Commit();
                }
                catch
                {
                    broker.Rollback();
                    throw;
                }
            }
        }
    }

}
